#include <stdio.h>
#include <string.h>

//给定一个字符串 s ，请你找出其中不含有重复字符的最长子串的长度。
int lengthOfLongestSubstring(char* s) 
{
    int arr[128] = {0};
    int len = strlen(s);
    int left = 0;
    int right = 0;
    int res = 0;

    while (right < len) 
    {
        if (arr[s[right]] == 0) 
        {
           arr[s[right]]++;
           right++;
           res = (res > (right - left)) ? res : (right - left);
        } 
        else 
        {
           arr[s[left]]--;
           left++;
        }
    }
    return res;



    //极度耗时
    // int max = 1;
    // int n = strlen(s);
    // for(int i = 0; i < n; i++)   
    // {
    //     int hash[256] = {0};
    //     for(int j = i; j < n; j++)
    //     {
    //         if(hash[s[j]] == 0)
    //         {
    //             hash[s[j]] =1;
    //             if((j-i+1) > max)
    //             max = j-i+1;
    //         }
    //         else
    //             break;
    //     }
    // } 
    // return max;
}

int main()
{
    char *s = " ";
    printf("%d\n",lengthOfLongestSubstring(s));
}
